
package com.jf.cloud.user.service;

import com.jf.cloud.api.user.vo.UserManagerVO;
import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.user.dto.ShopCustomerDTO;
import com.jf.cloud.user.model.ShopCustomer;
import com.jf.cloud.user.vo.ShopCustomerVO;

import java.util.List;

/**
 * 
 *
 * @author zz
 * @date 2023-01-15 15:53:16
 */
public interface ShopCustomerService {

    /**
     * 分页获取列表
     * @param pageDTO 分页参数
     * @return 列表分页数据
     */
    PageVO<ShopCustomer> page(PageDTO pageDTO);

    /**
     * 根据id获取
     *
     * @param shopCustomerId id
     * @return 
     */
    ShopCustomer getByShopCustomerId(Long shopCustomerId);

    /**
     * 保存
     * @param shopCustomer 
     */
    void save(ShopCustomer shopCustomer);

    /**
     * 更新
     * @param shopCustomer 
     */
    void update(ShopCustomer shopCustomer);

    /**
     * 根据id删除
     * @param shopCustomerId id
     */
    void deleteById(Long shopCustomerId);

    /**
     * 搜索条件分页查询
     * @param pageDTO
     * @param shopCustomerDTO
     * @return
     */
    PageVO<UserManagerVO> pageShopCustomerByParam(PageDTO pageDTO, ShopCustomerDTO shopCustomerDTO);

    /**
     * 批量添加客户
     * @param shopCustomers
     */
    void saveBatch(List<ShopCustomer> shopCustomers);

    /**
     * 根据userId查询
     * @param userId
     */
    List<ShopCustomer> listByUserId(Long userId);

    /**
     * 根据条件获取客户列表
     * @param shopCustomerDTO
     * @return
     */
    List<UserManagerVO> listByParam(ShopCustomerDTO shopCustomerDTO);

    /**
     * 获取店铺客户的用户id
     * @return
     */
    List<Long> getShopCustomerIdsByShopId(Long shopId);
}
